var JScroll = function(uls,utime) {
    var li_h = uls.eq(0).find("li").outerHeight(),
        timer = null,
        i = 0;
    uls.each(function() {
        var lis = $(this).find("li");
        $(this).append(lis.clone());
        $(this).attr("li_s", lis.size() * 2);
        $(this).attr("cur_li", lis.size() * 2 - 1);
    });

    uls.each(function() {
        $(this).scrollTop(10000);
    });

    function start(i) {
        var cur_ul = uls.eq(i);
        if (cur_ul) {
            cur_ul.animate(
                { scrollTop: cur_ul.scrollTop() - li_h },
                function() {
                    var cur_li = parseInt(cur_ul.attr("cur_li")),
                        li_s = parseInt(cur_ul.attr("li_s"));
                    cur_li--;
                    if ((li_s / 2 - 1) == cur_li) {
                        cur_ul.attr("cur_li", li_s - 1);
                        $(this).scrollTop(10000);
                    } else {
                        cur_ul.attr("cur_li", cur_li);
                    }
                    start(++i);
                }
            );
        };
    };
    timer = setInterval(function(){ start(i); }, utime);
};